VZX pingが飛ばない

問題文

Host01からHost02へのpingが飛びません。 ルーティング情報とかファイヤウォールは間違ってないと思うんですが・・・

トポロジ図

前提条件

  • Host01Routerの既存の設定を削除してはならない
  • Host02に問題はない

初期状態

  • Host01からHost02へのpingができない

終了状態

  • Host01からHost02へのpingができ、疎通ができる
  • Host01, Router を再起動しても、終了状態が維持される

初期状態のマシンの設定(抜粋)

Routerの初期状態の設定(展開できます)
firewall {
    interface eth1 {
        out {
            name ETH1-OUT
        }
    }
    name ETH1-OUT {
        default-action drop
        rule 10 {
            action accept
            protocol tcp
        }
    }
}
interfaces {
    ethernet eth1 {
        address 172.16.255.254/16
        hw-id 9c:a3:ba:32:4a:e9
    }
    ethernet eth2 {
        address 172.17.255.254/16
        hw-id 9c:a3:ba:32:9d:b6
    }
    loopback lo {
    }
}
Host01の初期状態の設定(展開できます)
interfaces {
    ethernet eth1 {
        address 172.16.0.1/16
        hw-id 9c:a3:ba:32:03:7b
    }
    loopback lo {
    }
}
protocols {
    static {
    }
}

解説

この問題は、2つのトラブルがありました。

  1. Host01からHost02のネットワークへのルーティング情報が消失していた
  2. Router上で TCPのみ許可し、他のプロトコルは破棄する firewallがあった

ルーティング情報は、例えば172.17.0.0/16ネットワークへの静的ルートを追加してあげると良いでしょう。

firewallに関しては、 ping のプロトコル TCP ではなく ICMP なので、 新たに ICMP を許可するルールを追加してあげることで、問題を解決することができます。

コマンド

トラブルを解決するために必要なコマンドの例を紹介します。

Host01(VyOS)のconfigureで

set protocols static route 172.17.0.0/16 next-hop 172.16.255.254

を打ち、Host01から172.17.0.0/16ネットワークへの経路を確保します。

続いて、Router(VyOS)のconfigureで

set firewall name ETH1-OUT rule 20 protocol icmp
set firewall name ETH1-OUT rule 20 action accept

を打ち、既存のfirewallに新たな icmp を許可(accept)するルールを追加します。

なお、設定後に

commit
save

を打ち、設定を適用・保存することを忘れないようにしましょう。

採点基準

  • Host01からのルートを設定した +40% (20点)
  • Routerでファイアウォールを適切に設定した +40% (20点)
  • ping疎通が可能である+20% (10点)
  • 以下、減点
    • 永続化されていない(saveを抜かして再起動時に設定が保持されない)
      • ホスト毎に -20%(-10点)